export const setSearchValue = function setSearchValue (value) {
  upsertSearchHistory(value)
}
export const getSearchHistory = function getSearchHistory () {
  return getSearchList()
}

export const delSearchHistory = function delSearchHistory () {
  localStorage.removeItem('searchValue')
}

/**
 * 更新历史搜索关键字
 * @param {string} key   localStorage 的 key，默认 'searchValue'
 * @param {string} word  本次要添加/置顶的关键字
 * @param {number} max   最多保留几条，默认 10
 */
function upsertSearchHistory (word, key = 'searchValue', max = 8) {
  let list = getSearchList()
  // 2. 去掉已存在的相同关键字（大小写敏感，如需忽略大小写自行改）
  list = list.filter(w => w !== word)
  // 3. 新关键字放到最前面
  list.unshift(word)
  // 4. 只保留最近 max 条
  if (list.length > max) list = list.slice(0, max)
  // 5. 写回
  localStorage.setItem(key, JSON.stringify(list))
}

function getSearchList (key = 'searchValue') {
  const raw = localStorage.getItem(key)
  if (raw === 'undefined') {
    localStorage.setItem(key, '[]')
    return []
  }
  if (raw == null) return []
  return JSON.parse(raw)
}
